import { defineStore } from 'pinia'

// defineStore方法用于创建仓库
// 第一个参数用于做id，要跟其他的仓库的id不同
// 当第二个参数是对象的时候，那么里面写的就是选项式api

// 取名建议用 use + '功能名'
export const useCounter = defineStore("counter", {
  // 选项式的写法可以用as来对类型进行断言
  // 通常选项式的写法不需要加ts的
  state() {
    return {
      count: 1 as number,
      name: "zhangsan" as string,
    }
  },
  // getters和vuex的getters完全一样（作用和语法）
  getters: {
    doubleCount(state) {
      return state.count * 2
    }
  },
  actions: {
    add(n: number) {
      // this.count++;
      this.count += n;
    }
  }
})
